home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 03 - 1987 / 03.11 Nov 87 / C string library / PStrLib Source / PStrCat.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-10-21  |  822 b   |  28 lines  |  [TEXT/KAHL]

  1. /*    FILE:    PStrCat.c
  2.     Concatenates 2-30 Pascal strings. */
  3. #include    "PStrLib.h"
  4.  
  5. PStrCat(count, dst)         
  6. register int    count;    /* # of strings (including dst) */
  7. unsigned char    *dst;    /* destination pascal string */
  8. {    
  9.     register    unsigned char    *dstPtr, *srcPtr;
  10.     register     unsigned char    **argList = &dst;
  11.     register    int                 argLen, totLen;
  12.     
  13.     if ((totLen = *dst) < 255) {
  14.         if (count > 30)
  15.             count = 30;            /* max. # of string args is 30 */
  16.         dstPtr = dst + totLen;    /* dstPtr = 1 past end of dst */
  17.         while (--count > 0 && totLen < 255) {
  18.             srcPtr = *++argList;    
  19.             argLen = srcPtr[0];
  20.             if (totLen + argLen > 255)
  21.                 argLen = 255 - totLen;    /* max totLen = 255 */
  22.             totLen += argLen;                
  23.             while (--argLen >= 0)        /* add arg's char to dst */
  24.                 *++dstPtr = *++srcPtr;        
  25.         }
  26.         dst[0] = totLen;                    /* sets length of dst */
  27.     }
  28. }